/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import util.Calculos;

/**
 *
 * @author jorge
 */
public class Criterio {
    
    private String nombre;
    private String descripcion;
    private String unidadMedida;
    private String optimizacion = MAXIMIZAR; //si es a maximizar o minimizar
    private String cuantitativoCualitativo = CUANTITATIVO;
    private double ponderacion;
//    private String escalaMedida;
    private Escala escalaMedida;
    public static final String MAXIMIZAR = "Maximizar";
    public static final String MINIMIZAR = "Minimizar";
    public static final String CUANTITATIVO = "Cuantitativo";
    public static final String CUALITATIVO = "Cualitativo";        
    private int nivel;

    public String getCuantitativoCualitativo() {
        return cuantitativoCualitativo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public Escala getEscalaMedida() {
        return escalaMedida;
    }

    public int getNivel() {
        return nivel;
    }

    public String getNombre() {
        return nombre;
    }

    public String getOptimizacion() {
        return optimizacion;
    }

    public String getUnidadMedida() {
        return unidadMedida;
    }

    public void setCuantitativoCualitativo(String cuantitativoCualitativo) {
        this.cuantitativoCualitativo = cuantitativoCualitativo;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public void setEscalaMedida(Escala escalaMedida) {
        this.escalaMedida = escalaMedida;
    }

    public void setNivel(int nivel) {
        this.nivel = nivel;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setOptimizacion(String optimizacion) {
        this.optimizacion = optimizacion;
    }

    public void setUnidadMedida(String unidadMedida) {
        this.unidadMedida = unidadMedida;
    }
    
    public double getPonderacion() {
        return ponderacion;
    }

    public void setPonderacion(double ponderacion) {
        this.ponderacion = ponderacion;
    }
    
    @Override
    public String toString() {
        String respuesta = nombre;
        if (!String.valueOf(ponderacion).equals("NaN")){
            respuesta+=" - ("+Calculos.df.format(ponderacion)+")";
        }
        return respuesta;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Criterio other = (Criterio) obj;
        if ((this.nombre == null) ? (other.nombre != null) : !this.nombre.equals(other.nombre)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 59 * hash + (this.nombre != null ? this.nombre.hashCode() : 0);
        return hash;
    }
    
    
}
